﻿/**********************************************************************
 * @file   FITKRadiossPostData.h
 * @brief  后处理数据
 * @author liuzhonghua (liuzhonghuaszch@163.com)
 * @date   2025-09-08
 *********************************************************************/
#ifndef __FITKRADIOSSPOST_DATA_H__
#define __FITKRADIOSSPOST_DATA_H__

#include "FITKRadiossDataAPI.h"
#include "FITK_Kernel/FITKCore/FITKAbstractDataObject.h"

namespace Interface
{
    class FITKStruPost3DManager;
}

namespace Radioss
{
    /**
     * @brief  Radioss Post Data
     * @author liuzhonghua (liuzhonghuaszch@163.com)
     * @date   2025-09-08
     */
    class FITKRadiossDataAPI FITKRadiossPostData
        : public Core::FITKAbstractDataObject
    {
    public:
        /**
         * @brief  Construct a new FITKRadiossPostData object
         * @author liuzhonghua (liuzhonghuaszch@163.com)
         * @date   2025-09-08
         */
        explicit FITKRadiossPostData();
        /**
         * @brief  Destroy the FITKRadiossPostData object
         * @author liuzhonghua (liuzhonghuaszch@163.com)
         * @date   2025-09-08
         */
        virtual ~FITKRadiossPostData();
        /**
         * @brief  从app框架获取后处理数据
         * @return FITKRadiossPostData*
         * @author liuzhonghua (liuzhonghuaszch@163.com)
         * @date   2025-09-08
         */
        static FITKRadiossPostData* GetDataFromAPPFrame();
        /**
         * @brief  获取三维后处理数据管理
         * @return Interface::FITKStruPost3DManager*
         * @author liuzhonghua (liuzhonghuaszch@163.com)
         * @date   2025-09-08
         */
        Interface::FITKStruPost3DManager* getPost3DManager();

        int getCurrentPostDataID();

        void setCurrentPostDataID(const int id);

    private:
        /**
         * @brief  三维对象数据管理
         * @author liuzhonghua (liuzhonghuaszch@163.com)
         * @date   2025-09-08
         */
        Interface::FITKStruPost3DManager* _post3DManager{};

        int _currentDataID{ -1 };

    };
}

#endif
